home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 501-525 / disk_517 / aequipot / aequipot.anl < prev    next >
Text File  |  1992-05-06  |  13KB  |  302 lines

  1. --------------------------- Aequipot V1.15 --------------------------------
  2.  
  3. Aequipot ist Copyright 1990, 1991 von Jürgen Matern.
  4. Dies ist ein Programm, das mehrfarbige Grafiken mit einem bestimmten
  5. Algorithmus berechnet.
  6.  
  7. -------------------------- HINTERGRUND ------------------------------------
  8.  
  9. Der Algorithmus beschreibt ein Problem der Elektrostatik. Eine elektrische
  10. Ladung baut um sich ein elektrisches Feld auf. Dieses Feld verhält sich
  11. nichtlinear. Bei einer Ladung kann dieses Feld noch gezeichnet werden, bei
  12. mehreren Ladungen ist dies kaum noch möglich. Auf eine Probeladung in
  13. diesem Überlagerungsfeld wirken Kräfte. Linien, auf denen eine Probeladung
  14. bewegt werden kann, ohne Arbeit am System zu verrichten, werden als
  15. Äquipotentiallinien bezeichnet (im dreidimensionalen sind dies
  16. Äquipotentialflächen). Eine Probeladung hat ein bestimmtes Potential
  17. gegenüber den betrachteten Ladungen. Bereiche gleichen Potentials werden
  18. vom Programm mit gleicher Farbe gekennzeichnet. Direkt an den Ladungen wird
  19. nichts gezeichnet, da dort das Potential gegen Unedlich strebt. Das
  20. Programm macht nur quantitative Aussagen.
  21.  
  22. --------------------------- FEATURES --------------------------------------
  23.  
  24. * bis zu zwanzig Ladungen
  25. * LoRes- und HiRes-Auflösung möglich
  26. * optimierter Rechenalgorithmus, um Zeit zu sparen
  27. * Übersichtsfunktion, um einen schnellen Einblick in die Grafik zu gewinnen
  28. * arbeitet mit 32, oder 16 Farben, je nach Modus
  29. * Parameterübergabe vom CLI aus
  30. * bei Start von der Workbench werden die Parameter erfragt
  31. * Reperaturfunktion, falls der optimierte Algorithmus Fehler macht
  32. * Script-File-Modus
  33. * Animationsberechnung durch Script-File
  34. * Grafik kann abgespeichert werden
  35.  
  36. --------------------------- BENUTZUNG -------------------------------------
  37.  
  38. Es existieren zwei verschiedene Versionen, die PAL- und die NTSC-Version.
  39. Sie sind durch verschiedene Namen gekennzeichnet (AequipotP und AequipotN).
  40. Das Programm kann von der Workbench oder vom CLI aus gestartet werden.
  41. Wird das Programm von der Workbench aus gestartet werden die beiden
  42. benötigten Parameter nacheinander vom Programm erfragt. Hierbei kann der
  43. Script-Modus des Programms nicht benutzt werden!
  44.  
  45.  
  46. Steuerung über CLI oder Workbench:
  47.  
  48. Wird das Programm aus dem CLI heraus gestartet müßen dabei zwei Parameter
  49. übergeben werden, oder es wird der Name der Start-Datei angegeben. Werden
  50. Parameter übergeben, so haben diese folgende Bedeutung: Der erste Parameter
  51. gibt die Bildschirmauflösung an, der zweite, die Berechnungsmethode.
  52. Werden keine, oder falsche  Parameter übergeben, wird folgende
  53. Kurzerklärung ausgegeben:
  54.  
  55.      Usage: AEQUIPOT [ScriptFile] OR [ScreenMode RenderingMode]
  56.             Where ScreenMode is h(igh) or l(ow)
  57.             and RenderingMode is s(low) or f(ast)
  58.             and ScriptFile is name of file to start from.
  59.  
  60. ( Hier die Übersetzung:
  61.  
  62.  Benutzung: AEQUIPOT [StartDatei] ODER [SchirmModus RechenModus]
  63.             Wobei SchirmModus h(=hoch) oder l(=niedrig)
  64.             und RechenModus s(=langsam) oder f(=schnell) sein kann
  65.             und StartDatei der Name der Datei ist, von der aus
  66.             gestartet werden soll. )
  67.  
  68. Nach dem Start des Programms wird der entsprechende Schirm geöffnet. Hier
  69. können jetzt mit der Maus Ladungen gesetzt werden. Das Setzen einer Ladung
  70. erfolgt nach Druck auf die linke Maustaste. Sollen keine Ladungen mehr
  71. gesetzt werden muß die rechte Maustaste gedrückt werden. Maximal können
  72. 20 Ladungen gesetzt werden. Bei der zwanzigsten Ladung wird automatisch
  73. in den Eingabemodus gesprungen. Jetzt werden nacheinander die einzelnen
  74. Koordinaten der Ladungen angegeben. Es können jetzt positive oder negative
  75. Ladungen eingegeben werden. Es können nur Ladungswerte zwischen -20 und
  76. 20 eingegeben werden.
  77. Nach Eingabe aller Ladungen wird die Grafik berechnet. Der Berechnungs- 
  78. vorgang wird mit Druck auf die rechte Maustaste beendet. Mit Druck auf die
  79. linke Maustaste kann die Titelleiste ein- und ausgeschaltet werden.
  80. Wurde der Berechnungsmodus f(=schnell) gewählt wird am Ende der Berechnung
  81. gefragt, ob die gleiche Grafik im Modus s berechnet werden soll. Wird <OK>
  82. gewählt, werden alle Koordinaten und Ladungen beibehalten und die Grafik
  83. wird nochmal berechnet. Wird <Cancel> gewählt, wird der Requester
  84. ausgeblendet (dann siehe unten).
  85. Wurde eine Berechnung im Modus s beendet, so wird gefragt, ob eine Reperatur
  86. durchgeführt werden soll. Dies ist nötig, falls der optimierte Algorithmus
  87. einen Fehler gemacht hat (probieren sie z.B. eine Ladung mit den
  88. Koordinaten (73/120) und der Ladung 1 im Berechnungsmodus s und Schirmmodus
  89. l; dann wird klar, was ein Fehler ist). Wird jetzt <OK> gewählt wird mit
  90. der Maus der Bereich ausgewählt, der nochmal berechnet werden soll. Am
  91. oberen linken Eckpunkt wird der linke Mausknopf gedrückt und wieder
  92. losgelassen. Am rechten unteren Eckpunkt wird wieder der linke Mausknopf
  93. gedrückt. Auf dem Bildschirm ist jetzt ein Rechteck zu sehen. Soll dieses
  94. Rechteck neu berechnet werden genügt ein Druck auf den rechten Mausknopf,
  95. soll doch ein anderes Rechteck gewählt werden muß wieder der linke
  96. Mausknopf gedrückt werden u.s.w. Wurde <Cancel> gewählt, so wird nur der
  97. Requester ausgeblendet.
  98. Das Programm wartet jetzt auf den rechten Mausknopf. Mit links kann der
  99. Titel aus- oder eingeblendet werden (z.B. zum speichern). Wurde der rechte
  100. Mausknopf gedrückt, so wird der Screen geschlossen und die Grafik ist
  101. verloren. Um Bilder zu speichern muß jetzt die Taste <s> gedrückt werden. Es
  102. erscheint ein File-Requester, der nach dem Filenamen fragt. Vor dem
  103. Speichern kann mit der Taste <c> noch der Farb-Requester aufgerufen werden,
  104. um die Farben zu verändern.
  105.  
  106.  
  107. Steuerung durch ein Script-File:
  108.  
  109. Ein Script-File wird mit einem beliebigen Editor erstellt (z.B. DME). Im
  110. folgenden werden die Befehle, die im File stehen können immer mit spitzen
  111. Klammern eingeklammert <Befehl>, Parameter zum Befehl werden in eckigen
  112. Klammern dargestellt [Parameter], verschiedene Möglichkeiten werden mit |
  113. getrennt. Bei [h|l] muß also entweder h, oder l angegeben werden. Diese
  114. Klammern dürfen im fertigen File dann aber nicht mehr stehen. Hinter der
  115. Zeile steht, wieviele Parameter vom Parser erwartet werden. Es werden die
  116. folgenden Befehle verarbeitet:
  117.  
  118.  Befehl           Parameter                   Anzahl
  119.  
  120. <Mode>            [h|l] [s|f]                   2
  121. <Charge>          [LadX] [LadY] [+|- Lad]       3
  122. <AnimateStart>    [LadX] [LadY] [+|- Lad]       3
  123. <AnimateEnd>      [LadX] [LadY] [+|- Lad]       3
  124. <Frames>          [Anzahl Gesamtbilder]         1
  125. <Name>            [Namen mit Pfad]              1
  126. <*>               keine                         0
  127.  
  128. <Mode> wählt den Berechnungsmodus (siehe oben).
  129.  
  130. <Charge> setzt die Koordinaten einer Ladung, [LadX] und [LadY], sowie die
  131.        Größe der Ladung [Lad]. Das Vorzeichen bei [Lad] muß angegeben
  132.        werden!
  133.  
  134. <AnimateStart> setzt die Anfangs-Koordinaten einer bewegten Ladung, sowie
  135.        deren Anfangs-Größe. Parameter analog zu <Charge>.
  136.  
  137. <AnimateEnd> setzt die End-Koordinaten einer bewegten Ladung, sowie deren
  138.        End-Größe. Parameter analog zu <Charge>. Die Befehle <AnimateStart>
  139.        und <AnimateEnd> müssen paarweise aufeinander folgen und beziehen
  140.        sich dann auf dieselbe Ladung. Es können alle 20 Ladungen animiert
  141.        werden.
  142.  
  143. <Frames> setzt die Anzahl der Bilder, die bei einer Animation berechnet
  144.        werden sollen. Z.B. werden bei <Frames> [20] 20 Bilder berechnet.
  145.        Während dieser 20 Bilder bewegen sich die jeweiligen animierten
  146.        Ladungen von ihrem Start- zu ihrem Endpunkt. Die Ladungsgröße
  147.        variiert vom Start- zum Endwert.
  148.  
  149. <Name> setzt den Namen, unter dem eine Animation, oder ein Einzelbild
  150.        gespeichert werden soll. Bei einer Animation werden den einzelnen
  151.        Bildernamen automatisch die laufende Bildnummer angehängt. Bei
  152.        <Name> [df0:Bilder/Aequipot] wird ein Einzelbild im Unterverzeichnis
  153.        'Bilder' auf eine Diskette im Laufwerk 0 unter dem Namen 'Aequipot'
  154.        abgespeichert. Bei einer Animation mit 10 Bildern lauten die
  155.        Bildernamen 'Aequipot1', 'Aequipot2', ... , 'Aequipot10'.
  156.        [Name] darf keine Anführungszeichen, oder Leerzeichen enthalten!
  157.  
  158. <*>    erlaubt es, einen beliebigen Kommentar in das Scriptfile zu
  159.        schreiben.
  160.  
  161. Leerzeilen sind im Script-File nicht erlaubt.
  162.  
  163. Zwei Beispiel-Files sind in diesem Paket enthalten 'Script1.pot' und
  164. 'Script2.pot'.
  165.  
  166. ----------------------- BEKANNTE FEHLER -----------------------------------
  167.  
  168. * Die NTSC-Version des Programms berechnet im 'Slow'-Modus einen PAL-Schirm
  169.   (ich weiß aber noch nicht, wie ich das ändern soll). Das Ergebnis ist
  170.   zwar richtig, es wird aber unnötig gerechnet.
  171. * Seit das Programm einen eigenen Mauszeiger benutzt werden bei jedem
  172.   Programmaufruf 64 Bytes ChipMem verschluckt, obwohl ich den Pointer mit
  173.   FreeMem() wieder freigebe. Ich weiß leider nicht woran das liegt.
  174.  
  175. ----------------- WAS NOCH SO KOMMT (hoffe ich) ---------------------------
  176.  
  177. * Steuerung über Menüs
  178. * Entfernung der Fehler
  179.  
  180. ------------------------- AUTOR AND COPYRIGHT -----------------------------
  181.  
  182. Aequipot wurde von Jürgen Matern unter Benutzung des PD-Pascal-Compilers
  183. PCQ V1.1c geschrieben (vielen Dank an Patrick Quaid dafür, daß er diesen
  184. Compiler entwickelt hat). Die ausführbaren Programme, die Quellcodes, die
  185. Icons und die Dokumentationen sind alle:
  186.  
  187.    Copyright © 1990, 1991 by Jürgen Matern.
  188.  
  189. Ich erlaube hiermit, daß dieses Programmpaket frei verbreitet werden darf,
  190. solange alle Files des Pakets unverändert weitergegeben werden.
  191.  
  192. Die Files des Pakets sind:
  193.  
  194. <Aequipot>
  195. - AequipotP        (das ausführbare Programm/PAL Version)
  196. - AequipotP.info   (das Icon von AequipotP)
  197. - AequipotN        (das ausführbare Programm/NTSC Version)
  198. - AequipotN.info   (das Icon von AequipotN)
  199. - Aequipot.anl     (dieses File hier)
  200. - Aequipot.doc     (die englische Dokumentation)
  201. - Script1.pot      (erstes Script-File)
  202. - Script2.pot      (zweites Script-File)
  203. - InstallLibs      (Installationsfile für Libraries)
  204. - InstallLibs.info (das Icon von InstallLibs)
  205. - Message.txt      (Nachricht für InstallLibs)
  206.  
  207. <Source>:
  208. - AequipotP.p      (der Quellcode/PAL Version)
  209. - AequipotN.p      (der Quellcode/NTSC Version)
  210. - reqlibrary.i     (Include-File der req.library)
  211. - ilbm.i           (Include-File der ilbm.library)
  212. - process.i        (Include-File mit process-record)
  213.  
  214. Kommentare, Fehler, GELD (wer will), Postkarten, oder alles andere an
  215. folgende Adresse:
  216.  
  217.       Jürgen Matern
  218.       Max-Wieland-Straße 13
  219.       Herrlingen
  220.       W-7906 Blaustein
  221.       Federal Republic of Germany
  222.  
  223.       Tel.: 07304-3745
  224.  
  225. Viel Spaß 8-)
  226.  
  227. --------------------------- ENTWICKLUNGS-GESCHICHTE -----------------------
  228.  
  229. V0.?? - 23. Dezember 1990 bis 01. Januar 1991:
  230.       - Grundlegende Programmgestaltung.
  231.  
  232. V1.0  - 02. Januar 1991:
  233.       - Erste veröffentlichte Version.
  234.  
  235. V1.01 - 16. Januar 1991:
  236.       - kleinere Veränderungen.
  237.       - Parameterübergabe vom CLI aus.
  238.       - aber kein WorkBench-Start mehr.
  239.  
  240. V1.02 - 21. Januar 1991:
  241.       - kleinere Veränderungen.
  242.       - sqrt durch SPSqrt ersetzt; dadurch fast doppelt so schnell.
  243.  
  244. V1.03 - 26. Februar 1991:
  245.       - kleinere Veränderungen.
  246.       - Quellcode aufgeräumt.
  247.       - bis zu 20 Ladungen werden berechnet.
  248.  
  249. V1.04 - 27. Februar 1991:
  250.       - Reperaturfunktion eingefügt.
  251.       - Feinberechnung nach Überblick mit gleichen Koordinaten.
  252.  
  253. V1.05 - 01. März 1991:
  254.       - Programm kann wieder von der Workbench gestartet werden.
  255.  
  256. V1.06 - 06. März 1991:
  257.       - Einbau von zwei Auto-Requestern (Reperatur, Feinberechnung).
  258.       - Reperatur-Funktion und Fast-Drawing wurden zusammen in einer
  259.         Prozedur untergebracht (Prog. 700 Bytes / Quellc. 1.3 K kürzer).
  260.  
  261. V1.07 - 29. März 1991:
  262.       - Das Programm benutzt jetzt immer den Zeichensatz 'Topaz 80' (hat
  263.         bis jetzt zu Problemen geführt, wenn auf der WorkBench 'Topaz 60'
  264.         von den 'Preferences eingestellt war).
  265.       - Benutzt einen eigenen Mauszeiger.
  266.       - Die Programmlänge ist geschrumpft, weil ich einige Definitionen in
  267.         Konstanten statt Variablen untergebracht habe (Alle IntuiTexte,
  268.         Screen- u. WindowDef.).
  269.  
  270. V1.08 - 05. April 1991:
  271.       - SystemRequester werden auf meinen Screen umgeleitet.
  272.       - Farben können mit dem ColorRequester aus der 'req.library' geändert
  273.         werden.
  274.  
  275. V1.09 - 06. April 1991:
  276.       - Bilder können im IFF-ILBM-Format abgespeichert werden (Benutzung
  277.         der Routine 'SaveWindowToIFF' aus der 'ilbm.library').
  278.       - Filenamen wird mit Hilfe des FileRequesters aus der 'req.library'
  279.         eingelesen.
  280.  
  281. V1.10 - 06. April 1991:
  282.       - Implementierung des Parsers zum Lesen von Script-Files. Ein Teil
  283.         der geplanten Befehle wird aber noch nicht verarbeitet.
  284.  
  285. V1.11 - 07. April 1991:
  286.       - Alle Script-Befehle arbeiten einwandfrei.
  287.  
  288. V1.12 - 23. April 1991:
  289.       - Animationsbefehle hinzugefügt.
  290.  
  291. V1.13 - 12. Juni 1991:
  292.       - Kommentarbefehl '*' hinzugefügt.
  293.  
  294. V1.14 - 23. Juni 1991:
  295.       - Arbeitet endlich mit 'MemGuard' zusammen.
  296.  
  297. V1.15 - 28. Juni 1991:
  298.       - Ladungseingabe im Grafik-Schirm.
  299.       - Kleinere Fehler entfernt.
  300.  
  301. Letzte Änderung am 29. Juni 1991.
  302.